package com.orhanobut;


import com.orhanobut.logger.Logger;

/**
 * @author rui.yang
 * Log日志
 * 1、需要初始化实现基本信息
 * 2、对logger实现二次封装
 * 3、logger库的地址：
 */
public class MyLog {
    /**
     * 通过Builder模式初始化日志相关的信息
     * 启动的时候执行一次
     * GyLog.newBuilder()
     * ** .context((Application) context) //必须
     * ** .isDebug(isDebug)  //非必须，默认是true
     * ** .tag(log) //非必须，默认LibComponent
     * ** .showThreadInfo(true) //非必须，默认false
     * ** .methodCount(2) //非必须，默认0
     * ** .methodOffset(1) //非必须，默认1
     * ** .isWriteLogToFile(false) //非必须，默认false
     * ** .build(); //必须
     */
    public static MyLoggerConfig newBuilder() {
        return MyLoggerConfig.getInstance();
    }

    /**
     * 如果传一个参数，显示的就是message信息；
     * 如果第二个参数传，表示的是格式化的数据,例如： v("hello%s","world")
     *
     * @param message message
     * @param args    args
     */
    public static void v(String message, Object... args) {
        Logger.v(message, args);
    }

    /**
     * 如果传一个参数，显示的就是message信息；
     * 如果第二个参数传，表示的是格式化的数据,例如： i("hello%s","world")
     *
     * @param message message
     * @param args    args
     */
    public static void i(String message, Object... args) {
        Logger.i(message, args);
    }

    /**
     * 如果传一个参数，显示的就是message信息；
     * 如果第二个参数传，表示的是格式化的数据,例如： d("hello%s","world")
     *
     * @param message message
     * @param args    args
     */
    public static void d(String message, Object... args) {
        Logger.d(message, args);
    }

    /**
     * 如果传一个参数，显示的就是message信息；
     * 如果第二个参数传，表示的是格式化的数据,例如： w("hello%s","world")
     *
     * @param message message
     * @param args    args
     */
    public static void w(String message, Object... args) {
        Logger.w(message, args);
    }

    /**
     * 如果传一个参数，显示的就是message信息；
     * 如果第二个参数传，表示的是格式化的数据,例如： e("hello%s","world")
     *
     * @param message message
     * @param args    args
     */
    public static void e(String message, Object... args) {
        Logger.e(message, args);
    }

    /**
     * 如果传一个参数，显示的就是message信息；
     * 如果第二个参数传，表示的是格式化的数据,例如： wtf("hello%s","world")
     *
     * @param message message
     * @param args    args
     */
    public static void wtf(String message, Object... args) {
        Logger.wtf(message, args);
    }


    /**
     * 直接打印集合信息，无需对集合进行转换成String类型
     * 仅支持使用debug方法进行打印
     *
     * @param collections collections
     */
    public static void collections(Object collections) {
        Logger.d(collections);
    }

    /**
     * 打印json，格式化输出
     *
     * @param message
     */
    public static void json(String message) {
        Logger.json(message);
    }

    /**
     * 打印xml，格式化输出
     *
     * @param message
     */
    public static void xml(String message) {
        Logger.xml(message);
    }
}
